package com.hrt.manage.product.service;

import java.sql.Timestamp;
import java.util.List;

import com.hrt.bean.GiftDetail;
import com.hrt.bean.GiftInfor;

public interface GiftDetailService {
	/**
	 * 保存实体
	 * */
	public void addGiftDetail(GiftDetail giftDetail);
	
	/**
	 * 更新实体
	 * */
	public void updateGiftDetail(GiftDetail giftDetail);
	
	/**
	 * 删除实体
	 * */
	public void delGiftDetail(Long id);
	
	/**
	 * 按id查询实体
	 * */
	public GiftDetail getById(Long id);
	
	/**
	 * 查询所有
	 * */
	public List<GiftDetail> searchAll();
	
	/**
	 * 按id列表查询实体
	 * */
	public List<GiftDetail> getByIds(Long[] ids);

	/**分页*/
	public Long totalCount();

	public List<GiftDetail> queryByPage(int pageIndex, int pageSize);
	/**父级下的分页*/
	public List<GiftDetail> queryById(Long proId, Integer pageIndex,
			Integer pageSize);
	
	/**获取数据库的当前Date形式的时间*/
	public Timestamp getDate();
	
	/**删除选中的数据*/
	public void  deleteById( Long[] ids) throws Exception;
	
	/**删除一个的数据*/
	public void  deleteByOneId( Long ids) throws Exception;
	
	/**上架*/
	public void shelveById(Long[] ids)throws Exception;
	
	/**下架*/
	public void unShelveById(Long[] ids)throws Exception;
	
	/**上下架的查询*/
	public List<GiftDetail> searchIspush(GiftInfor giftInfor);
	
	/**根据礼品基本信息的id找到礼品规格的id集合*/
	public List<GiftDetail> getDetailIdforId(Long id);

	/**根据条件搜索礼品规格信息**/
	public List<GiftDetail> queryGift(String condtionStr);
	
	/**
	 * 按是否删除查询
	 */
	public List<GiftDetail> searchDelAll();

	/**
	 * 按照giftID 和规格ID查询礼品规格
	 * @param proId
	 * @param ruleId
	 * @return
	 */
	public GiftDetail getDetailByGiftIdAndRuleId(Long giftId, Long ruleId);
	/**
	 * 根据礼品规格Id返回礼品规格当前的库存
	 */
	public Long getGiftTotals(Long giftDetailId);
	
}
